Skip to content

Add a new field for citation count #13531

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 54 commits into from
Jul 21, 2025
Merged

Conversation

SalvadorRomo
Copy link
Contributor

@SalvadorRomo SalvadorRomo commented Jul 12, 2025

Closes #13477

This PR add a new filed in the General Count to fetch the citationCount for a given Entry, with the ability to look it up.

Steps to test

1- Add a new paper
2- Go to the General Tab and
3 - Place your cursor in the new Citation Field
4- next to the field, there is button available to start the search
5- if the value is blank or the TTL for the actual Doi has expiered, the field must be filled with the expected value
6- if the there is an existing value or the TTL is not yet reached, it won't perform fetching and will keep the same value
image

Mandatory checks

  • I own the copyright of the code submitted and I license it under the MIT license
  • Change in CHANGELOG.md described in a way that is understandable for the average user (if change is visible to the user)
  • Tests created for changes (if applicable)
  • Manually tested changed features in running JabRef (always required)
  • Screenshots added in PR description (if change is visible to the user)
  • [/] Checked developer's documentation: Is the information available and up to date? If not, I outlined it in this pull request.
  • Checked documentation: Is the information available and up to date? If not, I created an issue at https://github.com/JabRef/user-documentation/issues or, even better, I submitted a pull request to the documentation repository.

@SalvadorRomo SalvadorRomo changed the title Fix for issue 13477 PR to add a new field for citation count Jul 12, 2025
Copy link
Member

@koppor koppor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Close to finish 😅

We keep commenting to share our development knowledge with you with the hope that you learn something - otherwise, we would "just" finish the PR for our selves.

.onRunning(() -> fetchCitationCountInProgress.setValue(true))
.onFinished(() -> fetchCitationCountInProgress.setValue(false))
.onFailure(e ->
dialogService.showErrorDialogAndWait(Localization.lang("Error Occurred")))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not JabRef's style. The text does not contain any information what the user should do.

  1. Rename string to Error occurred (also in JabRef_en.properties`)
  2. dialogService.notify(...)
  3. LOGGER.error("Error while fetching citation count", e)

With 3, there is a log entry, and users can see it in the log viewer accessible in the help menu.

}

public void getCitationCount() {
Optional<String> fieldAux = entry.getField(field);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aux is very strange. Maybe name it fieldContent

<graphic>
<StackPane>
<JabRefIconView glyph="LOOKUP_IDENTIFIER"
visible="${controller.viewModel.fetchCitationCountInProgress == false}"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use !... instead of == false

* Get the paper details that includes citation count field for a given {@link BibEntry}.
*
* @param entry entry to search citation count field
* @return returns a {@link PaperDetails}, that includes citation count field (may be empty)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajdust JavaDoc to actual return value (Integer is not PaperDetails)

@@ -138,6 +138,7 @@ public enum StandardField implements Field {
OWNER("owner"),
TIMESTAMP("timestamp", FieldProperty.DATE),
CREATIONDATE("creationdate", FieldProperty.DATE),
CITATIONCOUNT("Citation count"),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please show the excerpt here.

I think, you ened to adapt jablib/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml accordingly. Which is OK - you add a thing there (and we have the discussion on that there. Maybe, this is really required)

(And please let us resolve the conversations so that we save one click while reviewing) - otherwise, I need to open all resolved conversations)

@@ -136,6 +136,7 @@ public enum StandardField implements Field {
// JabRef-specific fields
GROUPS("groups"),
OWNER("owner"),
CITATIONCOUNT("Citation count"),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Field name should be in lowercase with underscores for consistency with other field names. The display name should be sentence case as per UI text guidelines.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - how can this happen?

@SalvadorRomo SalvadorRomo requested a review from koppor July 18, 2025 13:12
koppor
koppor previously approved these changes Jul 21, 2025
Copy link
Member

@koppor koppor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The space in the field name is strange.

An additional test (writing BibTeX and trying to read it) would have discoved it. However, too much effort for the gain. I fixed it.

I also parsed the error field and display it to the user at deee352 (#13531)

"Funny" DOI is 10.1145/1028174.971312, where no citation count is available, but the tab "Citation information" shows the count.

We will create a follow up issue (internal link https://github.com/JabRef/jabref-issue-melting-pot/issues/995).

I will let this through to move forward.

@@ -136,6 +136,7 @@ public enum StandardField implements Field {
// JabRef-specific fields
GROUPS("groups"),
OWNER("owner"),
CITATIONCOUNT("Citation count"),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - how can this happen?

@koppor koppor enabled auto-merge July 21, 2025 09:11
koppor
koppor previously approved these changes Jul 21, 2025
koppor
koppor previously approved these changes Jul 21, 2025
Copy link

trag-bot bot commented Jul 21, 2025

@trag-bot didn't find any issues in the code! ✅✨

@koppor koppor added this pull request to the merge queue Jul 21, 2025
Merged via the queue into JabRef:main with commit d6858cb Jul 21, 2025
44 checks passed
@SalvadorRomo
Copy link
Contributor Author

thks @koppor !!! i saw you are going to open a deffect, plase feel free to consider me in resolving, i will appreciate it

@koppor
Copy link
Member

koppor commented Jul 21, 2025

@SalvadorRomo Thank you! Just grab the issue if you feel comfortable working with. I currently don't have the capacity to do a deep management...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add citation count field (including semantic scholar fetcher)
3 participants